package com.catmiao.spark.rdd.operator.transform

import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext}

/**
 * @title: RDD_Operator_01_transform
 * @projectName spark_study
 * @description: TODO
 * @author ChengMiao
 * @date 2024/2/2 11:48
 */
object RDD_Operator_07_transform {

  def main(args: Array[String]): Unit = {
    val sparkCon = new SparkConf().setMaster("local[*]").setAppName("rdd")

    val sparkContext = new SparkContext(sparkCon)


    val rdd = sparkContext.makeRDD(List(1, 2, 3, 4, 5, 6, 7, 8, 9, 10))

    // 抽取算子 sample
    /**
     * param1: 抽取数据后是否需要将数据放回 true-放回 false-不放回
     * param2：如果是抽取不放回的情况：数据源中每条数据被抽取的概率，基准值的概念
     *         如果是抽取放回的情况：表示数据源中每条数据被抽取的可能次数
     * param3：抽取数据时随机算法的种子
     *        如果不传递第三个参数，那么使用的是系统时间
     */
//    println(rdd.sample(
//      false,
//      0.4,
////      1
//    ).collect().mkString(","))

    println(rdd.sample(
      true,
      2,
      //      1
    ).collect().mkString(","))




    sparkContext.stop()
  }

}
